1. Field of the Invention
This invention relates generally to microprogrammed data processing systems and in particular to the aligning of operands for performing decimal numeric instructions.
2. Description of the Prior Art
Data processing systems process data stored in memory in the form of decimal digits. Computer instructions are also stored in memory. Some of the instructions when processed by the data processing system result in arithmetic operations being performed on the decimal digits. For example, a decimal numeric instruction may be processed by the computing system to add one set of decimal digits--operand 1, from one group of memory locations to another set of decimal digits from another group of memory locations--operand 2, and place the result--operand 3, into a third group of memory locations.
Descriptors associated with the instruction define the characteristics of each of the operands. An operand may be a floating point number or a scaled number. Each decimal digit may have 4 bits or 9 bits. The descriptor also defines the number of decimal digits in the operand, the location of the decimal point, i.e., the scale factor, the character position within a word of the most significant character of the operand, and the location of the sign if the operand contains a sign, either in the most significant character position--leading sign, or the least significant character position in a scaled operand--trailing sign. The instruction will indicate if the operand is ASCII or EBCDIC and if the sign is part of an overpunched character.
Prior art computing systems, for example, the Honeywell 6000 family of computers, bring the operands into the arithmetic unit right justified, then go through a sequence of logic operations for aligning the operands so that arithmetic operations may be performed. The Honeywell 6000 is described in the "Series 6000 Summary Description", copyright 1972 by Honeywell Information Systems Inc. (Order No. DA48).
Data processing systems that are controlled through firmware were used to provide systems with less hardware to perform the same functions. However, these microprogrammed systems required large numbers of firmware steps including branching to firmware routines to align the operands in order to perform arithmetic operations.
The above approaches to performing the operand alignment resulted in limiting the performance of the computing system when performing decimal arithmetic instructions due to the large number of computer cycles required to align the operands.